﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Sistema_Totem.Logica.Clases;
using Sistema_Totem.Datos.SqlServer;

namespace Sistema_Totem.Pruebas
{
    /// <summary>
    /// Etiqueta a la clase para casos de prueba.
    /// </summary>
    [TestFixture]
    public class PruebaSqlCliente
    {
       #region Prueba Agregar Cliente
        /// <summary>
        /// Prueba que valida que el Cliente
        /// se crea correctamente.
        /// </summary>
        /// 
        [TestCase]
        public void PAgregarCliente()
        {
            string rif = "G-987651234";
            string nombreCliente = "Iliana De Oliveira";
            string telefono = "04269623456";
            string correo = "ilismile2786@gmail.com";
            string direccion = "Portugal, Lisboa.";
            string logo = "empresa.png";
            string estatus = "Activo";
            string retorno = "Se agrego a Iliana De Oliveira con éxito";

            Cliente miCliente = new Cliente(direccion, nombreCliente, telefono, correo, rif, estatus, logo);
            SqlServerCliente serverCliente = new SqlServerCliente();
            retorno = serverCliente.AgregarCliente(miCliente);

            //Assert que comprueba que no hay un campo nulo.
            Assert.IsNotNull(miCliente.Nombre);
            Assert.IsNotNull(miCliente.Rif);
            Assert.IsNotNull(miCliente.Telefono);
            Assert.IsNotNull(miCliente.Direccion);
            Assert.IsNotNull(miCliente.Logo);
            Assert.IsNotNull(miCliente.Estatus);
            //Assert que comprueba que no hay un campo vacio.
            Assert.IsNotEmpty(miCliente.Nombre);
            Assert.IsNotEmpty(miCliente.Rif);
            Assert.IsNotEmpty(miCliente.Telefono);
            Assert.IsNotEmpty(miCliente.Direccion);
            Assert.IsNotEmpty(miCliente.Logo);
            Assert.IsNotEmpty(miCliente.Estatus); 
            //Assert que comprueba que se realizo bien la insercion.
            Assert.AreEqual(retorno, "Se agrego a Iliana De Oliveira con éxito");
        }
        #endregion Prueba Agregar Cliente

        #region Prueba Modificar Cliente
        /// <summary>
        /// Prueba que valida que el Cliente
        /// se modifico correctamente.
        /// </summary>
        [TestCase]
        public void PModificarCliente()
        {
            string rif = "G-987651234";
            string nombreCliente = "Iliana De Pita";
            string telefono = "04269623488";
            string correo = "ilismile2786@gmail.com";
            string direccion = "Portugal, Lisboa.";
            string logo = "empresa.png";
            string estatus = "Activo";
            string retorno = "Los datos de Iliana De Pita fueron actualizados con éxito";

            Cliente miCliente = new Cliente(direccion, nombreCliente, telefono, correo, rif, estatus, logo);
            SqlServerCliente serverCliente = new SqlServerCliente();
            retorno = serverCliente.modificarCliente(miCliente);

            //Assert que comprueba que no hay un campo nulo.
            Assert.IsNotNull(miCliente.Nombre);
            Assert.IsNotNull(miCliente.Rif);
            Assert.IsNotNull(miCliente.Telefono);
            Assert.IsNotNull(miCliente.Direccion);
            Assert.IsNotNull(miCliente.Logo);
            Assert.IsNotNull(miCliente.Estatus);
            //Assert que comprueba que no hay un campo vacio.
            Assert.IsNotEmpty(miCliente.Nombre);
            Assert.IsNotEmpty(miCliente.Rif);
            Assert.IsNotEmpty(miCliente.Telefono);
            Assert.IsNotEmpty(miCliente.Direccion);
            Assert.IsNotEmpty(miCliente.Logo);
            Assert.IsNotEmpty(miCliente.Estatus);
            //Assert que comprueba que se realizo bien la modificación.
            Assert.AreEqual(retorno, "Los datos de Iliana De Pita fueron actualizados con éxito");
        }
        #endregion Prueba Modificar Cliente
    }
}